
package parser;

import java.util.List;

/**
 * Producción con una regla semántica de síntesis de atributos.
 * 
 * @param <T> tipo de los "atributos" sintetizados
 */
public abstract class SemanticProduction<T> extends Production {
	
	public SemanticProduction(String production) {
		super(production);
	}
	
	/**
	 * Calcula los atributos del lado izquierdo de esta producción sintetizando
	 * los atributos del lado derecho.
	 */
	public abstract T synthesize(List<T> children);
	
}
